package com.finalcial.dao;


import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
/**
 * 待办 已办界面
 * 
 * @author Administrator
 *
 */
public interface WorkDao {
	
	/**
	 * 进入我的待办（已办）页面--页面参数(工作状态名)
	 * @param userId 工作状态中的用户id
	 * @param workStateName 工作状态的名称
	 * @return 【报销类型名 用户名】待办名称  报销来源 票据表中的金额 报销时间 session中的角色名(环节)
	 */
	public List<Map<String,Object>> listWorkMsg(@Param("userId") Integer userId,@Param("workStateName")String workStateName,@Param("startPos") Integer startPos,@Param("pageSize")Integer pageSize);//（用户id，工作状态名）


	
	/**
	 * 点击搜索按钮---页面参数（报销类型名、用户名、起始金额、结束金额、起始时间、结束时间）
	 * (报销类型名、票据名、用户名、起始金额、结束金额、起始时间、结束时间)
	 * @param userId 用户id
	 * @param workStateName 工作状态姓名
	 * @param reimbursementTypeName 报销类型名称
	 * @param userName 用户姓名
	 * @param moneyStart 开始金额
	 * @param moneyEnd 结束金额
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @return 【报销类型名 用户名】待办名称  报销来源 票据表中的金额 报销时间 session中的角色名(环节)
	 */
	public List<Map<String, Object>> getWorkMsg(@Param("userId") Integer userId,@Param("workStateName")String workStateName,@Param("reimbursementTypeName") String reimbursementTypeName,@Param("userName") String userName,@Param("moneyStart") String moneyStart,@Param("moneyEnd") String moneyEnd,@Param("startTime") String startTime,@Param("endTime") String endTime);

	
	
	/**
	 * 点击某一行待办信息--进入对应的类型界面--页面参数(报销类型名、报销id)
	 * 获取基本信息
	 * @param reimbursementId 报销id
	 * @return 报销表  报账时间(费用发生时间) 是否员工垫付 报账单号(报销id) 报账说明(票据名称） 是否个人专项 附单张数
			公司表 报账单位名称 公司代码 
			票据表 费用发生日 发票类型 
			用户表 报账人电话 报账人 
			收款表 收支方式
			预算指标（费用类型）
	 */
	public List<Map<String,Object>> getEssentialInformation(@Param("reimbursementId") String reimbursementId);//（报销id）【通用于四种报销类型的表数据】


	
	/**
	 * 根据报销id得到明细（除差旅以外）
	 * 获取详细信息
	 * @param reimbursementId
	 * @param userId session里面的id
	 * @return 报销表：是否使用成本/资本预算 报销金额 金额（含税与不含税） 
				费用类型表： 预算指标（费用类型）  
				部门表：预算责任中心（报账人的部门名） 记账成本中心（接收人的id） 
	 */
	public List<Map<String,Object>>  getDetailInformation(@Param("reimbursementId")String reimbursementId,@Param("userId")Integer userId);// 

	/**
	 * 根据报销id得到差旅明细
	 * @param reimbursementId 报销id
	 * @param userId session里面的用户id
	 * @return 差旅表：出差开始时间  出差结束事件 出差初始地  出差目的地 交通工具 住宿费 市内交通费 城市间交通费 进项税 其他费用 
				活动预算表： 活动预算名
				部门表：报账人部门名 经办人部门名 
	 */
	public List<Map<String, Object>> getDetailInformationBytravel (@Param("reimbursementId")String reimbursementId,@Param("userId")Integer userId);

	/**
	 * 查找已办（待办）界面数据总条数
	 * @param userId 
	 * @param workStateName
	 * @return
	 */
	public Integer listWorkMsgCounts(@Param("userId")Integer userId,@Param("workStateName")String workStateName);

}
